#pragma once
#include <iostream>
#include <pthread.h>
#include <semaphore.h>

namespace SemModule
{
	const int default_value = 1;
	class Sem
	{
	public:
	Sem(int value = default_value){
		sem_init(&_sem, 0, value);
	}
	void P(){
		sem_wait(&_sem);
	}
	void V(){
		sem_post(&_sem);
	}
	~Sem(){
		sem_destroy(&_sem);
	}
	private:
		sem_t _sem;
	};
}